home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 401-425 / disk_403 / niftyterm / niftyterm.doc < prev    next >
Text File  |  1992-05-06  |  22KB  |  416 lines

  1.  
  2.  
  3.  
  4.             Niftyterm: A VT102/H19 terminal emulator for the Amiga
  5.                                        
  6. Copyright notice:
  7.  
  8.     Niftyterm is (C) Copyright 1989, 1990 Christopher J. Newman and Todd
  9.     Williamson
  10.     All Rights Reserved.
  11.     
  12.     Permission to use, copy, modify, distribute, and sell this software and
  13.     its documentation for any purpose is hereby granted without fee,
  14.     provided that the above copyright notice appear in all copies and that
  15.     both that copyright notice and this permission notice appear in
  16.     supporting documentation, and that the names of Christopher J. Newman
  17.     and Todd Williamson not be used in advertising or publicity pertaining
  18.     to distribution of the software without specific, written prior
  19.     permission.  Christopher J. Newman and Todd Williamson make no
  20.     representations about the suitability of this software for any purpose.
  21.     It is provided "as is" without express or implied warranty.
  22.     
  23.     CHRISTOPHER J. NEWMAN AND TODD WILLIAMSON DISCLAIM ALL WARRANTIES WITH
  24.     REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
  25.     MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL CHRISTOPHER J. NEWMAN OR
  26.     TODD WILLIAMSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
  27.     DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  28.     PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
  29.     ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
  30.     THIS SOFTWARE.
  31.     
  32.     Authors: Christopher J. Newman and Todd Williamson
  33.     Niftyterm was compiled with Manx Aztec C version 5.0d
  34.     Niftyterm source code is available upon request.  Send a disk and a
  35.     self-addressed mailer to the address below, and I'll send you a copy.
  36.  
  37.     If you find this program useful, Chris and I would certainly appreciate
  38.     a donation to support further development:
  39.     
  40.     Todd Williamson
  41.     5440 Fifth Avenue Apt. 59
  42.     Pittsburgh, Pa.  15232-2243
  43.  
  44. Niftyterm: History
  45.  
  46.     Niftyterm was written at Carnegie-Mellon University by Chris Newman.
  47.     It started out as a terminal emulator for the CMU Andrew system (a
  48.     system of distributed UNIX workstations) using the CMU Window Manager
  49.     (wm).  At the time it was created, all of the terminal emulators
  50.     available for wm were featureless and bug-ridden.
  51.  
  52.     Then CMU purchased DECStation 3100's for use with Andrew.  One of the
  53.     major faults of the DECStation is that the console only emulates a
  54.     glass tty (i.e. you can't even clear the screen, much less control the
  55.     cursor position;  good luck running anything but a line editor).  So,
  56.     of course, Chris ported niftyterm to run on the console of the
  57.     DECStation.  While he was at it, he made a console version for all of
  58.     the other machines in the Andrew system (currently includes: Mac II
  59.     Mach, Sun 3, Sun 4 (Sparc), Decstation 3100, IBM RT, and VAX).
  60.     
  61.     The next step, of course, was X Windows.  There is currently a working
  62.     version, but it isn't complete yet.
  63.     
  64.     Last fall, I found myself in need of an h19 emulator for the Amiga,
  65.     preferably under DNet.  I also found myself wishing that we had a VT100
  66.     emulator that would run under DNet.  So I ported Chris' work to the
  67.     Amiga.
  68.     
  69. What is Niftyterm?
  70.  
  71.     Niftyterm is an h19/VT102/VT52 emulator for the Amiga.  It was originally
  72.     designed to be used with DNet, but it has been expanded so that it may be
  73.     used as a normal terminal emulator.  Niftyterm was designed to be a good
  74.     emulation of these terminals, as well as being fairly small and fast.  It
  75.     was not designed to be anything but a terminal.  As such, it provides no
  76.     direct facility for file transfer, nor are any planned for future versions.
  77.  
  78.     Niftyterm opens its window on the WorkBench.  It provides a full-featured
  79.     Intuition interface, as well as a system for storing preferences and a large
  80.     list of command-line options.  Copy/paste to/from the clipboard is
  81.     supported.  Niftyterm also remaps the cursor and keypad keys so that they
  82.     function as on the real terminals.
  83.  
  84.  
  85. Starting Niftyterm
  86.  
  87.     By default, Niftyterm will use the system font topaz 8.  Since some people
  88.     find this font unattractive, and it lacks the necessary VT102 alternate
  89.     character set and double width characters, you might wish to use a set of
  90.     fonts specifically designed for use with Niftyterm.  See the section below
  91.     entitled "About fonts" for more information.
  92.     
  93. Options
  94.  
  95.     You can use the following arguments when entering the Niftyterm command:
  96.     
  97.     niftyterm [-f fontname] [-h19] [-l file] [-p programname] [-sl] [-st] [-i]
  98.     [-g geometry] [-vt102] [-vt52] [-80] [-d device] [-u unit] [-V] [-w]
  99.     [-shared]
  100.     
  101.     These arguments can be entered in any order and any combination (except
  102.     those that override opposite preferences).  Their meanings are as follows:
  103.     
  104.     -f  font  Sets the font for the niftyterm window.  By default the font
  105.     'nifty/11' or 'topaz/8' is used.  If you wish to use a different font such
  106.     as 'courier 11', simply specify font as 'courier/11.' If the font you
  107.     choose is not fixed width, strange and unusual things will happen.
  108.     
  109.     -h19  Causes niftyterm to emulate a Zenith h19 terminal.  The only thing an
  110.     h19 can do that a vt102 can't is change the look of the cursor.
  111.     
  112.     -l file  Writes everything that occurs in the niftyterm to a log file.
  113.     
  114.     -p name  Sets the program name in the window title bar.
  115.     
  116.     -sl  Starts up niftyterm in slow mode -- only useful if you intend to watch
  117.     some vt102 animations.
  118.     
  119.     -st  Causes niftyterm to display whatever comes from standard input, and
  120.     send all keystrokes to standard output.  For example:
  121.  
  122.     run type >pipe:foo file
  123.     niftyterm <pipe:foo -st
  124.     
  125.     would display file in a niftyterm window.  (Or simply niftyterm <foo -st).
  126.     
  127.     -i  Starts up niftyterm with an invisible cursor -- very limited
  128.     usefulness.
  129.     
  130.     -g geometry  Set up the window geometry.  The format for geometry is
  131.     left/top/width/height.  A value of -1 for the width or height makes the
  132.     window stretch to the right edge or bottom of the screen.  A value of -1
  133.     for the top makes the window's top edge appear just below the screen title
  134.     bar.  The left and top are in pixels.  The width and height are in
  135.     characters.
  136.     
  137.     -vt102  This overrides the niftyterm.emulation preference, causing
  138.     niftyterm to emulate a vt102 terminal.
  139.     
  140.     -vt52  This causes niftyterm to start up emulating a vt52 terminal.  This
  141.     is only useful if you have a program designed for a vt52 terminal.
  142.     
  143.     -80  causes niftyterm to use no more than 80 columns.
  144.     
  145.     -d device  causes niftyterm to use device for its input and output.  If you
  146.     want to use DNet, you can use 'dnet' as the device name.
  147.     
  148.     -u unit  causes niftyterm to use the specified unit of the device.  No
  149.     effect if using DNet.
  150.     
  151.     -V  niftyterm will display the current version number and copyright notice.
  152.     
  153.     -w  niftyterm will wait for a key to be pressed before closing the window.
  154.     
  155.     -shared  niftyterm will open the device specified in "shared" mode.  A new
  156.     menu option will appear also.  This allows niftyterm to share the serial
  157.     port with other applications which open the serial port in shared mode
  158.     (including niftyterm).  See the "unlisten" menu option.
  159.  
  160. Preferences
  161.  
  162.     On startup, niftyterm reads the file s:niftyprefs for it's preferences
  163.     data.  This file is in the format used by the CMU Window Manager.  I
  164.     think that it's a good format.  Entries in the file have the format:
  165.     
  166.     niftyterm.preference: value
  167.     
  168.     boolean values can be indicated by most things that make sense: {yes,
  169.     no}, {true, false}, etc.  The following are the supported preferences:
  170.  
  171.     niftyterm.emulation: [h19/vt52/vt102] (default: vt102)
  172.     This preference sets the startup emulation for all niftyterm windows.
  173.     
  174.     niftyterm.bell: [audio/visual/both/displaybeep/none] (default: visual)
  175.     This preference sets what niftyterm should do when it gets the bell
  176.     character (^G).  audio plays a simple beep.  visual inverts the entire
  177.     window temporarily.  both does both audio and visual.  displaybeep calls
  178.     the internal Amiga DisplayBeep() function (in case you have your own nifty
  179.     sample set up as the beep).  none means there is no bell.
  180.     
  181.     niftyterm.device: <device>  (default: dnet)
  182.     This preference sets what device niftyterm should use for input and output.
  183.     For example. 'serial.device.'  'dnet' is a legal value, meaning that
  184.     niftyterm should talk to DNet instead of a particular device.
  185.     
  186.     niftyterm.unit: <unit>  (default: 0)
  187.     This preference tells niftyterm which unit on the device specified by
  188.     niftyterm.device it should use.
  189.     
  190.     niftyterm.altismeta: yes (default)
  191.     By default, the alt key on the keyboard will act as a meta key (i.e. set
  192.     the eighth bit of the character pressed with the key down).  Setting this
  193.     preference to 'no' will disable this feature.  This is particularly useful
  194.     for emacs.
  195.     
  196.     niftyterm.cursorblink: no (default)
  197.     By default, niftyterm has a solid cursor.  Setting this preference to 'yes'
  198.     will case niftyterm's cursor to blink at the rate of once per second.
  199.     
  200.     niftyterm.cursor: [underline/block/invisible] (default: block)
  201.     This preference sets the type of cursor niftyterm uses.  Invisible isn't
  202.     very useful.
  203.     
  204.     niftyterm.basefont: <name>/<size>  (default: nifty/11 then topaz/8)
  205.     This preference sets the base fontfamily for niftyterm's fonts.  See the -f
  206.     option above.
  207.     (i.e. "niftyterm.basefont: courier/11" causes courier 11 to be the default
  208.     font).
  209.     
  210.     niftyterm.normalDelete: yes  (default)
  211.     If you add "niftyterm.normalDelete: no", then niftyterm will bind the
  212.     delete key to backspace.  See also the niftyterm.normalBackspace
  213.     preference.
  214.     
  215.     niftyterm.normalBackspace: yes  (default)
  216.     If you add "niftyterm.normalBackspace: no", then niftyterm will bind the
  217.     backspace key to delete on startup.
  218.     
  219.     niftyterm.emacsmode: no  (default)
  220.     If you add "niftyterm.emacsmode: yes", then niftyterm will start up in
  221.     "emacs mode".  See description of emacs mode menu item below.
  222.     
  223.     niftyterm.fixedColumns: no  (default)
  224.     If you add "niftyterm.fixedColumns: yes", then niftyterm will start up with
  225.     no more than 80 columns of text.  This is useful for running programs
  226.     written for terminals that assume the terminal is 80 columns.
  227.     
  228.     niftyterm.geometry: left/top/width/height  (default:  0/0/-1/-1)
  229.     Set up the default geometry of the window.  See the -g option above.  The
  230.     default is to open a window the size of your screen.
  231.     
  232.     niftyterm.sizegadget: [row/column/none]  (default: column)
  233.     This preference controls which border of the window the window's sizing
  234.     gadget will appear in.  If you have a sizing gadget on a window, you must
  235.     lose some of the window space for the border to contain it.  This
  236.     preference controls whether you lose rows, columns, or nothing.  If you
  237.     choose none, the window will not have a size gadget, and will therefore not
  238.     be resizeable.  Useful if you want an 80x24 window to take up the smallest
  239.     possible screen space.
  240.  
  241. Menu meanings
  242.  
  243.     Niftyterm currently has two menus, Edit and Control.  The Edit menu has
  244.     editing commands.  The Control menu allows the user to adjust the way
  245.     Niftyterm functions.
  246.     
  247.     Edit menu:
  248.         Copy:  Copies the selected text into the clipboard.  You can put the
  249.         text you copied most recently back into any document by choosing Paste.
  250.         
  251.         Paste:  Copies the most recently copied text to the current cursor
  252.         position.
  253.         
  254.         Move:  If a previous command or some text is selected in the Niftyterm
  255.         window, Move inserts the text as if it had been typed.
  256.         
  257.         Execute:  The same as move, only it follows the text with a carriage
  258.         return.
  259.         
  260.         Clear Screen:  Moves the current niftyterm prompt to the top of the
  261.         Niftyterm window and clears the screen.
  262.         
  263.         Flush:  Flushes the buffers for the current device.  Useful if you did
  264.         something that will cause a lot of output, and you want to tell
  265.         niftyterm not to display it all.
  266.         
  267.         Break:  (only available if input is from a device, not dnet or standard
  268.         input)  Break sends a break signal to the current device.
  269.         
  270.         Iconify:  Turns the niftyterm window into an icon.  Double click on the
  271.         icon to get the window back.
  272.         
  273.         Quit:  exits Niftyterm and closes the window.
  274.         
  275.     Control menu:
  276.     
  277.         Change Cursor:  This toggles the cursor between a block and an
  278.         underline character.  When emulating an h19 terminal, this cursor
  279.         change can also be made by terminal codes.
  280.         
  281.         invert:  inverts the niftyterm display window.  This may be
  282.         controlled by terminal codes when emulating a VT102 terminal.
  283.         
  284.         soft reset:  resets all terminal styles, scroll regions, and invert
  285.         mode.
  286.         
  287.         slow display:  If you select this, the display speed will be reduced,
  288.         and the menu item will change to fast display.  A slow display is
  289.         useful when viewing VT100 animations.
  290.         
  291.         Delete to Backspace:  If you select this, the Delete key will be
  292.         converted to a Backspace key, and the menu item will change to Delete
  293.         to Normal.  By default, Niftyterm leaves the delete key alone.
  294.         
  295.         Backspace to Delete:  If you select this, the Backspace key will be
  296.         converted to a Delete key, and the menu item will change to Backspace
  297.         to Normal.  By default, Niftyterm leaves backspace key alone.
  298.         
  299.         80 Columns:  Niftyterm will display no more than 80 columns in the
  300.         window, allowing 80 column terminal programs to run correctly.
  301.         
  302.         Emacs mode on:  causes left mouse clicks to (attempt to) move the
  303.         cursor when running emacs in a niftyterm.  The menu item will then
  304.         change to Emacs mode off.  This is a hack, but you might find it
  305.         useful.  It operates by inserting the right number of ^P, ^N, ^F, & ^B
  306.         characters to move the cursor to the desired location.
  307.         
  308.         Unlisten:  (only available when niftyterm is started in "shared" mode)
  309.         Niftyterm will cease to talk to whatever device it is connected to, so
  310.         that another program can use it exclusively.  Note that this niftyterm
  311.         window will not accept any input from the user except the "listen" menu
  312.         option.  An example of usage:  you're logged in and you want to save
  313.         something to a log file.  You had foresight and started niftyterm in
  314.         shared mode.  You "unlisten" and start another niftyterm writing to a
  315.         log file.  When you have everything in the log file, you quit the
  316.         second niftyterm and "listen" the original.  This option might be
  317.         useful if someone wants to write some stand-alone file transfer
  318.         utilities.
  319.         
  320. About Fonts
  321.  
  322.     Niftyterm should be able to use any fixed-width font.  However,
  323.     standard Amiga fonts do not represent the VT100's character set very
  324.     well.  Included with this distribution is a set of fonts with names
  325.     starting with "nifty".  Some explanation of these fonts is in order.
  326.     Niftyterm starts out with a base font name, something like "topaz" or
  327.     "nifty."  If niftyterm needs an italic or bold font, it first looks in
  328.     the fonts: directory to see if there is a version of the current font
  329.     which was designed to be italic or bold.  If not, it uses the Amiga's
  330.     internal functions to construct one.  When it needs one of the special
  331.     VT100 character sets, it appends an extension to the font name and
  332.     looks for a font of the same size as the current font with the new
  333.     name.  The extensions are as follows:
  334.  
  335.     v       alternate character set
  336.     w       double-width font
  337.     t       top half of double-width double-height font
  338.     b       bottom half of double-width double-height font
  339.     
  340.     "vw", "vt",  and "vb" are also extensions, meaning the alternate
  341.     character set version of the different-sized font.  So, for example, if
  342.     niftyterm was using the font "nifty/11," and it needed a double-width
  343.     font, it would look for the font "niftyw/11."
  344.     
  345.     The fonts that come with the distribution are designed to be used on
  346.     screens where the pixels are roughly as wide as they are tall.  Any of
  347.     the 640x400 graphics modes fall into this category.  In the 640x200
  348.     modes, the fonts will seem too tall.
  349.     
  350.     If anyone creates any fonts for use with niftyterm, I'd like to get a
  351.     copy of them.
  352.  
  353. Quick reference
  354.  
  355. Preferences: [default values in brackets]
  356.  niftyterm.emulation: h19/vt52/vt102                 set emulation. [vt102]
  357.  niftyterm.bell: audio/visual/both/displaybeep/none  set bell type [visual]
  358.  niftyterm.device: <device>                          set I/O device [dnet]
  359.  niftyterm.unit: <unit>                              set device unit [0]
  360.  niftyterm.altismeta: yes/no                         is alt key meta key? [yes]
  361.  niftyterm.cursorblink: yes/no                       does the cursor blink? [no]
  362.  niftyterm.cursor: block/underline/invisible         type of cursor [block]
  363.  niftyterm.basefont: <name>/<size>                   set default font. [nifty/11]
  364.  niftyterm.normalDelete: yes/no                      delete key <-> delete? [yes]
  365.  niftyterm.normalBackspace: yes/no                   backspace key <-> bs? [yes]
  366.  niftyterm.emacsmode: no/yes                         cursor moves in emacs.[no]
  367.  niftyterm.fixedColumns: no/yes                      80 columns max. [no]
  368.  niftyterm.geometry: left/top/width/height           set up default window specs.
  369.  niftyterm.sizegadget: row/column/none               sizegadget? where? [column]
  370.     
  371. Command line options:
  372.  -f <font>/<size>              set the font. (i.e. nifty/11, courier/11).
  373.  -h19                          emulate an h19 terminal instead of a VT102.
  374.  -l <file>                     write all output to a log file.
  375.  -p <name>                     set the program name (left side of title bar).
  376.  -sl                           start up in slow mode (for vt100 animations).
  377.  -st                           take input from standard input and display it.
  378.  -ic                           start up with invisible cursor.
  379.  -g left/top/width/height      set up window geometry.
  380.  -vt102                        emulate a vt102 terminal on startup. 
  381.  -vt52                         emulate a vt52 terminal on starpppptup.
  382.  -80                           start with no more than 80 columns.
  383.  -d <device>                   set device to use for I/O.
  384.  -u <unit>                     set unit number for device I/O.
  385.  -V                            show version number and copyright notice.
  386.  -w                            wait for a keypress before closing window.
  387.  -shared                       start niftyterm in shared mode.
  388.  
  389. Delete and Backspace
  390.  
  391.     Since some systems require the use of either a delete key or a backspace
  392.     key for line editing, Niftyterm can make each of these keys act like the
  393.     other selectively.  For a temporary change to the performance of these
  394.     keys, select the appropriate menu item (backspace to delete or delete to
  395.     backspace). For a permanent change, use the preferences
  396.     niftyterm.normalDelete and niftyterm.normalBackspace.
  397.  
  398. Warnings
  399.  
  400.     Niftyterm's h19 emulation is not fully compatible with a standard h19
  401.     terminal.
  402.     
  403.     The VT102 mode currently lacks 132 column mode.
  404.     
  405.     When a Niftyterm window is reduced then enlarged, information will be
  406.     clipped and lost off the edge of the window.
  407.     
  408. Authors
  409.     
  410.     Todd Williamson can be reached by electronic mail at tw0i@andrew.cmu.edu
  411.     (internet) or r746tw0i@cmccvb.BITNET.  Please direct all correspondence and
  412.     suggestions about the Amiga version of niftyterm to him.
  413.     
  414.     All correspondence about other versions of niftyterm should be directed to
  415.     cn0h@andrew.cmu.edu (internet).
  416.